package d5_jdk8_time;

import java.time.Clock;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Set;

public class Test4_ZoneId_ZonedDateTime {
    public static void main(String[] args) {
        // 目标：了解时区和带时区的时间。
        // 1、ZoneId（用于获取时区的）的常见方法：
        // public static ZoneId systemDefault(): 获取系统默认的时区
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println(zoneId.getId());//返回值类型是String ,获取时区的名字
        System.out.println(zoneId);//对getId()进行进行了封装,其实是默认调用toString()方法

        //public static Set<String> getAvailableZoneIds(): 获取Java支持的全部时区
      /*  Set<String> zoneIds = ZoneId.getAvailableZoneIds();//返回一个set集合
        System.out.println(zoneIds);*/

        //public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象
        //America/New_York
        ZoneId an = ZoneId.of("America/New_York");

        //2、ZonedDateTime: 带时区的实践。
        //public static ZonedDateTime now(ZoneId zone): 获取某个市区的ZoneDateTime对象
        //public static ZonedDateTime now() : 获取系统默认时区的ZoneDateTime对象
        //ZoneDateTime 的功能和LocalDateTime一样了
        ZonedDateTime zdt = ZonedDateTime.now(an);
        System.out.println(zdt);

        //世界标准时间: 多恨服务器获取世界时间!
        ZonedDateTime utcNow = ZonedDateTime.now(Clock.systemUTC());
        System.out.println(utcNow);
    }
}
